草庐IT

haskell - 新线 haskell

全部标签

java - Android:新线程在完成执行后会停止吗?

线程是否会在完成执行后简单地终止?这是我初始化线程的方式:newThread(newRunnable(){publicvoidrun(){}}).start();基本上,我想做的只是在新线程上执行单个任务,然后终止该线程。然而,一段时间后我会开始另一个等等。我不想启动一堆线程,我想知道线程是否会在执行完成后自行终止?谢谢。 最佳答案 是的。当run返回时,线程将停止。要在Android的线程中执行单个任务,您可能需要考虑使用AsyncTask反而。AsyncTask正是为此目的而设计的。它为您提供了一种简单的方法来将数据传递给另一个

android - 如何从 JNI 启动一个新线程

我需要从android应用程序的native部分启动一个新线程。它必须在JNI中声明和定义。有人知道我该怎么做吗?如果有人会发布示例,我将非常高兴。 最佳答案 最简单的方法是使用C++11线程类。参见thistopic关于如何使用AndroidNDK启用C++11。另见thispost如果您在让线程类工作时遇到问题。然后你可以像这样使用它:#include//std::threadvoidfoo(){//dostuff...}voidbar(intx){//dostuff...}JNIEXPORTvoidJNICALLJava_or

android - 在 BroadcastReceiver 中启动一个新线程是否安全?

我需要在BroadcastReceiver中执行网络操作。到目前为止,我通过启动一个新线程来实现它:@OverridepublicvoidonReceive(Contextcontext,Intentintent){newThread(newRunnable(){publicvoidrun(){//networkstuff...}}).start();}在线程完成之前进程会被杀死是否有任何风险?改用IntentService会更好吗?还有其他更好的方法吗? 最佳答案 Isthereanyriskthattheprocesswillb

android - MediaPlayer.start() 也应该是一个新线程吗?

这里的教程解释了服务实际上使用主线程。所以它使用prepareAsync来避免阻塞UIS:http://developer.android.com/guide/topics/media/mediaplayer.html#asyncprepare我想知道异步回调onPrepared在哪里运行。在示例中,onPrepared调用MediaPlayer的开始。start也是CPU密集型方法吗?如果它在同一个线程中运行,它也会阻塞。 最佳答案 MediaPlayer.start()至少不是一个密集型操作。MediaPlayer使用它自己的n

android - 具有新线程和数据绑定(bind)问题的 Room 持久库

我正在研究AndroidRoomPersistent库。我还在我的项目中实现了双向数据绑定(bind)。在该项目中,我通过填写表格并在行中显示所有用户并通过单击特定用户行来更新它们来插入用户。下面是我的UserDao类:@DaopublicinterfaceUserDao{@Query("SELECT*FROMuser")ListgetAllUsers();@InsertvoidinsertAll(User...users);@UpdatevoidupdateUser(User...users);@Query("SELECT*FROMuserWHEREuser_idIN(:userId

unity Sockets通信 使用UDP协议,设置客户端电脑网络配置,使用新线程获取数据,解决卡顿问题,

今天调试和服务器连接,发现始终获取不到服务器的数据,电脑和服务器都在同一局域网,仍然获取不到,下面是电脑环境配置,第一步:设置网络为专用网络,然后点击配置防火墙和安全设置,关闭防火墙(点击所连接的wifi的属性)第二步:设置出站入站规则点击高级设置,入站规则—创建:选择端口—选择UDP,所有本地端口,–允许连接—三个都勾选—起个名字如UDP连接出站规则和入站规则操作步骤一样现在运行看看是否已经可以获取服务器数据了,如果还未获取到,就需要设置自己的IP地址为固定的了然后点击详细信息,拍照记住IPV4地址、IPV4子网掩码。IPv4网关,然后关闭点击属性把刚才记录的东西按下图以此填写设置,//然后

c++ - 将图像从 C++ 传递给 Haskell 并取回一个字符串

我想使用图像作为参数从C++调用Haskell函数。它只是一个无符号字符数组,包含有关宽度和高度的信息(以像素为单位)。到目前为止,我已经有了这个工作代码。--Stuff.hsmoduleStuffwhereimportData.ListimportData.WordimportqualifiedData.Vector.UnboxedasVimportForeign.PtrimportForeign.StorableimportForeign.C.TypesimportForeign.C.StringimportForeign.Marshal.ArrayimportForeign.Ma

c++ - Haskell IO monad 的 C/C++ 包装器

我想从C/C++调用Haskell函数。我已经阅读了一些与该主题相关的教程,但是其中没有涉及IOmonad调用。特别是,我想调用一个使用interact函数的函数(interact::(String->String)->IO())。我不明白在这种情况下如何使用函数?如何在C/C++包装器中声明函数?如何在C/C++和Haskell之间转移标准输入/输出的控制(在C/C++代码中)? 最佳答案 我将让这个答案相对简短,因为大部分内容都包含在FFIdocumentation中。.您可以通过在C中按名称调用函数来使用它们。函数必须声明为f

c++ - 为什么 Haskell 对于简单的斐波那契比 C++ 更快

Haskell标签中的通常问题是为什么haskell与X相比如此慢。大多数情况下,您可以将其与String而不是Text或的用法联系起来字节串。评估不严格或缺少类型签名。但是我有一个简单的斐波那契计算器,它的性能比C++高出大约2倍。这可能是因为缺乏C++知识——但我从一个friend那里得到了代码,他过去常常在这种语言。★g++-O3fib2.cc-occ-fib-lgmpxx-lgmp★time./cc-fib>/dev/null./cc-fib>/dev/null8,23suser0,00ssystem100%cpu8,234total★ghc-O3--make-ohs-fibf

c++ - 为什么在我启动新线程时 Valgrind 会出现段错误

我正在用C++编写程序,我注意到一些非常奇怪的事情。当我在Xcode下运行我的程序时,一切正常,但是当我在Valgrind下运行时,它会在几秒钟后给我一个segmentationfault。我设法提取了一个非常简单的代码,但它给出了错误:#includevoidexec_1(){}intmain(intargc,constchar*argv[]){std::threadsimulator_thread;simulator_thread=std::thread(exec_1);simulator_thread.join();return0;}我所做的只是使用这些标志在Xcode下构建我的